
import os
os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'

from google.appengine.dist import use_library
use_library('django', '1.2')

from google.appengine.ext.webapp import template
from google.appengine.ext import webapp
from google.appengine.ext.webapp.util import run_wsgi_app

class HelloHandler(webapp.RequestHandler):
  def get(self):
    template_values = {}
    path = os.path.join(os.path.dirname(__file__), 'hello.html')
    self.response.out.write(template.render(path, template_values))

class GoodbyeHandler(webapp.RequestHandler):
  def get(self):
    self.response.out.write('Goodbye app engine world!')

class DiceHandler(webapp.RequestHandler):
  def get(self):
    rolls = int(self.request.get('times'))
    import random                                                                           
    self.response.out.write("Rolling the dice " + str(rolls) + " times" + "<br>")                                 
    for roll_num in range(rolls): 
        dice_1 = random.randint(1, 6)                                                   
        dice_2 = random.randint(1, 6)
        if ((dice_1 == dice_2) and (dice_1 == 1)):
           self.response.out.write("You got Snake Eyes!")
        elif ((dice_1 == dice_2) and (dice_1 == 6)):
           self.response.out.write("You got Double Sixes!")
        else:
           self.response.out.write("Rolls: " + str(dice_1) + " " + str(dice_2))
        self.response.out.write("<br>")
    self.response.out.write('Goodbye app engine world!')

class QuizHandler(webapp.RequestHandler):
  def get(self):
    template_values = {'name' : self.request.get('name')}
    path = os.path.join(os.path.dirname(__file__), 'quiz.html')
    self.response.out.write(template.render(path, template_values))

class WrongAnswer:
  def __init__(self, question, guess, correct):
    self.question = question
    self.guess = guess
    self.correct = correct

class GradeQuizHandler(webapp.RequestHandler):
  def get(self):
    addition_guess = self.request.get('addition')
    capital_guess = self.request.get('capital')
    template_values = {'name' : self.request.get('name'), 'wrong_answers' : []}

    if addition_guess != '7':
      template_values['wrong_answers'].append(WrongAnswer('3 + 4', addition_guess, 7))
    if capital_guess != 'Sacramento':
      template_values['wrong_answers'].append(WrongAnswer('the capital of California', capital_guess, 'Sacramento'))
    if (addition_guess != '') and (capital_guess != ''):
      path = os.path.join(os.path.dirname(__file__), 'grade_quiz.html')
      self.response.out.write(template.render(path, template_values))
    else:
      path = os.path.join(os.path.dirname(__file__), 'quiz.html')
      self.response.out.write(template.render(path, template_values))

def main():
  application = webapp.WSGIApplication([('/hello.*', HelloHandler), ('/goodbye.*', GoodbyeHandler), ('/dice.*', DiceHandler), ('/quiz', QuizHandler), ('/grade_quiz', GradeQuizHandler)], debug=True)
  run_wsgi_app(application)

if __name__ == '__main__':
  main()
